Get Started
Download, Execute and Go!
YottaDB is available free of charge. Install YottaDB on your Linux machine, or use a Docker container, and begin working today!
Install YottaDB using the Install Script
Download the YottaDB installer script in a temporary directory, e.g.:
mkdir /tmp/tmp ; wget -P /tmp/tmp https://gitlab.com/YottaDB/DB/YDB/raw/master/sr_unix/ydbinstall.sh
Make the file executable:
cd /tmp/tmp ; chmod +x ydbinstall.sh
Install YottaDB (typical installation):
sudo ./ydbinstall.sh --utf8 default --verbose
To list all options:
./ydbinstall.sh --help
After installing YottaDB set environment variables and create a default environment in $HOME/.yottadb
source $(pkg-config --variable=prefix yottadb)/ydb_env_set
Accessing YottaDB from different languages is as described below, except that you will be using $HOME/.yottadb instead of /data
Use a Docker Container
Docker Hub has prebuilt YottaDB images. You must have at least docker 17.05.
Pull an image with binaries built from the latest source code:
docker pull yottadb/yottadb-debian:latest-master
The Docker image supports volumes, for persistence and for sharing code and routines between host and container, by mounting a local directory to /data in the container. For example, to use the directory ydb-data as the volume:
docker run -it -v `pwd`ydb-data:/data --network=host yottadb/yottadb-debian:latest-master
Note: You may need to use “sudo docker” in place of “docker” on some platforms depending on the permissions of the docker socket.
If you want to access the database from multiple containers (e.g., to add containers with a tool such as Kubernetes), they will need to share IPC resources and pids. So use a command such as:
docker run -it -v `pwd`ydb-data:/data --network=host --ipc=host --pid=host yottadb/yottadb-debian:latest-master
Access from C
Download the sayhelloC.C program, compile it, and run it to set a database node:
root@mnementh:/data# wget https://docs.yottadb.net/AcculturationGuide/sayhelloC.c ... root@mnementh:/data# gcc $(pkg-config --libs --cflags yottadb) -o sayhelloC sayhelloC.c -lyottadb root@mnementh:/data# ./sayhelloC root@mnementh:/data#
Access from Go:
Download the sayhelloGo.go program, compile it, and run it to set a database node:
root@mnementh:/data# wget https://docs.yottadb.net/AcculturationGuide/sayhelloGo.go ... root@mnementh:/data# go build sayhelloGo.go root@mnementh:/data# ./sayhelloGo root@mnementh:/data#
Access from M:
Download the sayhelloM.m program to the r/ subdirectory and run it. It does not need a separate compilation step:
root@mnementh:/data# wget -P r/ https://docs.yottadb.net/AcculturationGuide/sayhelloM.m ... root@mnementh:/data# yottadb -run sayhelloM root@mnementh:/data#
Access from Perl:
Download the sayhelloPerl.pl program, make it executable and run it. It does not need a separate compilation step:
root@mnementh:/data# wget https://docs.yottadb.net/AcculturationGuide/sayhelloPerl.pl ... root@mnementh:/data# chmod +x sayhelloPerl.pl root@mnementh:/data# ./sayhelloPerl.pl root@mnementh:/data#
Access from Rust:
Create a directory for Rust development, and create a package for the sayhelloRust program, and a dependency on YottaDB for that package. Replace the src/main.rs program with sayhelloRust.rs, compile it, move the compiled binary to the $ydb_dir directory and execute it.
root@mnementh:/data# git clone --quiet https://gitlab.com/YottaDB/Lang/YDBRust/ root@mnementh:/data# cd YDBRust/ root@mnementh:/data# cargo run --quiet --example say_hello_rust # May take some time the first time root@mnementh:/data# cd - root@mnementh:/data#
Results:
Dump the database to see updates from programs in multiple languages. The MUPIP program is the YottaDB system administration tool.
root@mnementh:/data# mupip extract -label=Hello -select=hello -format=zwr -stdout Hello UTF-8 17-JAN-2020 22:29:55 ZWR ^hello("C")="Hello, world!" ^hello("Go")="สวัสดีชาวโลก" ^hello("M")="Приветствую, мир!" ^hello("Perl")="Grüẞ Gott Welt" ^hello("Rust")="こんにちは世界" %YDB-I-RECORDSTAT, ^hello: Key cnt: 5 max subsc len: 13 max rec len: 36 max node len: 44 %YDB-I-RECORDSTAT, TOTAL: Key cnt: 5 max subsc len: 13 max rec len: 36 max node len: 44 root@mnementh:/data#
Dig in with the Acculturation Guide
Since it’s easier to learn by doing, the Acculturation Guide is a series of guided, self-paced, hands-on exercises using virtual machines to get you going with database configuration, journaling, replication, backup, and more.
Documentation
- C & Go Programmers: Multi-Language Programmer’s Guide
- M Programmers: M Programmer’s Guide
- Perl: Interim documentation
- Rust: Rust/YottaDB Documentation
For Supported hardware & operating systems, check the Platforms section of the Release Notes for the latest release.
Explore All YottaDB Projects at GitLab
As all YottaDB software is 100% free / open source, you will find all our work on Gitlab.